﻿Public Class FrmCapNhatThongTinSanPham
    Private flag As Boolean

    Private Sub FrmCapNhatThongTinSanPham_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        LoadDS()
        LockButton(True)
        LockTextbox(False)
    End Sub

    'load danh sach len data table
    Sub LoadDS()
        Dim ds As DataTable
        ds = CapNhatThongTinSP_DAO.SelectAll()
        dgvTTSanPham.DataSource = ds
    End Sub

    'xóa trắng các textbox
    Sub ClearTextbox()
        txtMSPTTSP.Text = ""
        txtTenSPTTSP.Text = ""
        txtDVT.Text = ""
        txtGDV.Text = ""
    End Sub

    'đồng bộ các nút chức năng giống nhau
    Sub LockButton(ByVal bt As Boolean)
        btnThemTTSP.Enabled = bt
        btnSuaTTSP.Enabled = bt
        btnXoaTTSP.Enabled = bt
        btnLuuTTSP.Enabled = Not bt
        btnKhongLuuTTSP.Enabled = Not bt
        btnThoat.Enabled = bt
    End Sub

    'lock các textbox 
    Sub LockTextbox(ByVal tb As Boolean)
        txtMSPTTSP.Enabled = tb
        txtTenSPTTSP.Enabled = tb
        txtDVT.Enabled = tb
        txtGDV.Enabled = tb
        If tb = False Then
            txtMSPTTSP.BackColor = Color.GreenYellow
            txtTenSPTTSP.BackColor = Color.GreenYellow
            txtDVT.BackColor = Color.GreenYellow
            txtGDV.BackColor = Color.GreenYellow
        Else
            txtMSPTTSP.BackColor = Color.White
            txtTenSPTTSP.BackColor = Color.White
            txtDVT.BackColor = Color.White
            txtGDV.BackColor = Color.White
        End If
    End Sub

    Sub Them()
        Dim sp As CapNhatThongTinSP_DTO = New CapNhatThongTinSP_DTO()
        sp.MaSP = txtMSPTTSP.Text
        sp.TenSP = txtTenSPTTSP.Text
        sp.DonViTinh = txtDVT.Text
        sp.Gia = txtGDV.Text

        CapNhatThongTinSP_DAO.Insert(sp)
        LoadDS()

    End Sub

    Sub Xoa()
        Dim sp As CapNhatThongTinSP_DTO = New CapNhatThongTinSP_DTO()
        sp.MaSP = txtMSPTTSP.Text

        CapNhatThongTinSP_DAO.Delete(sp)
        LoadDS()
    End Sub

    Sub Sua()
        Dim sp As CapNhatThongTinSP_DTO = New CapNhatThongTinSP_DTO()
        sp.MaSP = txtMSPTTSP.Text
        sp.TenSP = txtTenSPTTSP.Text
        sp.DonViTinh = txtDVT.Text
        sp.Gia = txtGDV.Text

        CapNhatThongTinSP_DAO.Update(sp)
        LoadDS()
    End Sub

    Private Function TestData() As Boolean
        TestData = True
        If Trim(txtMSPTTSP.Text) = "" Then
            TestData = False
            MsgBox("Nhập mã sản phẩm !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtMSPTTSP.Focus()
            Exit Function
        ElseIf Trim(txtTenSPTTSP.Text) = "" Then
            TestData = False
            MsgBox("Nhập tên sản phẩm !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtTenSPTTSP.Focus()
            Exit Function
        ElseIf Trim(txtDVT.Text) = "" Then
            TestData = False
            MsgBox("Nhập đơn vị tính của sản phẩm !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtDVT.Focus()
            Exit Function
        ElseIf Trim(txtGDV.Text) = "" Then
            TestData = False
            MsgBox("Nhập giá của sản phẩm !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtGDV.Focus()
            Exit Function
        End If
    End Function

    'load các thuộc tính từ lưới lên textbox
    Sub HienThi()
        If (dgvTTSanPham.SelectedRows.Count > 0) Then
            txtMSPTTSP.Text = dgvTTSanPham.SelectedRows(0).Cells(0).Value.ToString()
            txtTenSPTTSP.Text = dgvTTSanPham.SelectedRows(0).Cells(1).Value.ToString()
            txtDVT.Text = dgvTTSanPham.SelectedRows(0).Cells(2).Value.ToString()
            txtGDV.Text = dgvTTSanPham.SelectedRows(0).Cells(3).Value.ToString()
        End If
    End Sub

    'xử lý sự kiện các nút
    Private Sub btnThemTTSP_Click(sender As Object, e As EventArgs) Handles btnThemTTSP.Click
        flag = True
        LockTextbox(True)
        LockButton(False)
        ClearTextbox()
        dgvTTSanPham.Enabled = False
        txtMSPTTSP.Focus()
    End Sub

    Private Sub btnSuaTTSP_Click(sender As Object, e As EventArgs) Handles btnSuaTTSP.Click
        flag = False
        LockTextbox(True)
        LockButton(False)
        dgvTTSanPham.Enabled = False
        txtMSPTTSP.Focus()
    End Sub

    Private Sub btnXoaTTSP_Click(sender As Object, e As EventArgs) Handles btnXoaTTSP.Click
        Xoa()
    End Sub

    Private Sub btnLuuTTSP_Click(sender As Object, e As EventArgs) Handles btnLuuTTSP.Click
        If TestData() Then
            If flag = True Then
                Them()
            Else
                Sua()
            End If
            LockTextbox(False)
            LockButton(True)
            dgvTTSanPham.Enabled = True
            MsgBox("cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông Báo !")
        End If
    End Sub

    Private Sub btnKhongLuuTTSP_Click(sender As Object, e As EventArgs) Handles btnKhongLuuTTSP.Click
        LoadDS()
        LockTextbox(False)
        LockButton(True)
        dgvTTSanPham.Enabled = True
    End Sub

    Private Sub btnThoat_Click(sender As Object, e As EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub

    Private Sub dgvTTSanPham_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTTSanPham.CellContentClick
        HienThi()
    End Sub

    Private Sub dgvTTSanPham_SelectionChanged(sender As Object, e As EventArgs) Handles dgvTTSanPham.SelectionChanged
        HienThi()
    End Sub
End Class